package com.vq3.digitalizationsoftwareintegrates.MongoDB.Spot_Check;

import com.vq3.digitalizationsoftwareintegrates.Entity.Enum.Group_Type;
import com.vq3.digitalizationsoftwareintegrates.Entity.Enum.MessageType;
import com.vq3.digitalizationsoftwareintegrates.Entity.Enum.S_CType;
import com.vq3.digitalizationsoftwareintegrates.Entity.Enum.StatusType;
import com.vq3.digitalizationsoftwareintegrates.Entity.Spot_Check.MongoDBEntity.*;
import com.vq3.digitalizationsoftwareintegrates.Entity.User.Permission_TBEntity;
import com.vq3.digitalizationsoftwareintegrates.Entity.User.URole_TBEntity;
import com.vq3.digitalizationsoftwareintegrates.Entity.User.UserEntity;
import com.vq3.digitalizationsoftwareintegrates.Entity.User.User_RoleEntity;

import java.util.List;


public interface MongoDB_S_C_Point_ContentDao {
    void saveTempImg(List<MongoDB_S_C_Point_ContentEntity> s_c_point_contentEntities);

    List<MongoDB_S_C_Point_ContentEntity> findTempImage(String pointName, UserEntity userEntity, S_CType sCType);

    List<MongoDB_S_C_Point_ContentEntity> findTempImage(String pointName, UserEntity userEntity, S_CType sCType, StatusType statusType);

    Object reviseItem(String pointName, UserEntity userEntity, S_CType sCType, StatusType statusType);

    List<MongoDB_S_C_Point_ContentEntity> findOne(String post_check_Point_Name);

    boolean check_ok_submit(String pointName, StatusType statusType, Group_Type group_type);

    boolean saveWebSocketMessage(MongoDB_S_C_WebSocketMessageEntity messageEntity);

    List<MongoDB_S_C_WebSocketMessageEntity> findMongoDB_S_C_WebSocketMessageEntity(List<URole_TBEntity> uRole_tbEntityS);

    List<MongoDB_S_C_WebSocketMessageEntity> findMongoDB_S_C_WebSocketMessageEntity(Permission_TBEntity permission_tbEntity);

    List<MongoDB_S_C_WebSocketMessageEntity> findMongoDB_S_C_WebSocketMessage(Permission_TBEntity permission_tbEntity);

    List<MongoDB_S_C_Point_ContentEntity> itemNameFindMongoDBToMongoDB_S_C_Point_ContentEntityS(List<MongoDB_S_C_WebSocketMessageEntity> mongoDB_s_c_webSocketMessageEntities);

    List<MongoDB_S_C_Point_ContentEntity> itemNameFindMongoDB_S_C_Point_ContentEntity(String itemName);

    boolean S_C_AuditReviewNG(String itemName, StatusType statusType);

    boolean S_C_AuditReviewNG(String itemName, StatusType statusType,List<String> cleaningRemarkContext) throws Exception;

    String itemNameFindUName(String itemName,StatusType statusType);

    MongoDB_S_C_WebSocketMessageEntity itemNameFindRemarkContext(String itemName,StatusType statusType);

    List<MongoDB_S_C_WebSocketSendMessageEntity> findNormalMessages(String uname);

    List<MongoDB_S_C_WebSocketSendMessageEntity> findSysMessages(List<User_RoleEntity> user_roleEntities);

    boolean deleteMessage(String itemName,String uname);

    boolean S_C_AuditPass(String itemName,String uname);

    MongoDB_S_C_WebSocketMessageEntity findS_C_Pass(String itemName,String uname);

    boolean saveSysMessage(MongoDB_S_C_WebSocketMessageEntity messageEntity);

    boolean deleteSysMessage(String message, Integer date, Integer month, Integer hour, MessageType messageType);

    boolean SysAuthentication(MongoDB_S_C_SysAuthAuditMessageEntity messageEntity);

    List<MongoDB_S_C_SysAuthAuditMessageEntity> findUserAuthAuditMessage(Group_Type group_type);





}
